Ext.onReady(function(){

    var h_crear_success = function(){
        X.set('nombre',       '');
        X.set('codigo',       '');
        X.set('departamento', '');
        X.set('duracion',     '');
        X.focus('departamento');
    }
    var h_crear_failure = function(){
        X.focus('departamento');
    }

    var h_empty_nombre   = function(){ X.focus('nombre');   }
    var h_empty_codigo   = function(){ X.focus('codigo');   }
    var h_empty_dpto     = function(){ X.focus('departamento');     }
    var h_empty_duracion = function(){ X.focus('duracion'); }

    X.store({
        id     : 'storeDpto',
        fields : [
            'idDepartamento',
            'nombre'
        ]
    });

    X.form.panel({
        id     : 'createCarreerForm',
        height : 145,
        width  : 345,
        items  : [
            X.form.label  ({x:10,  y:16,  text:'Departamento:'             }),
            X.form.label  ({x:10,  y:46,  text:'Nombre:'                   }),
            X.form.label  ({x:10,  y:76,  text:'Código:'                   }),
            X.form.label  ({x:10,  y:106, text:'Duración de hora cátedra:' }),
            X.form.label  ({x:190, y:106, text:'minutos'                   }),
            X.form.combo  ({x:90,  y:10,  width:230, id:'departamento',
                                                     dfield:'nombre',
                                                     vfield:'idDepartamento',
                                                     storeId:'storeDpto'      }),
            X.form.text   ({x:90,  y:40,  width:230, id:'nombre', maxlen: 35  }),
            X.form.text   ({x:90,  y:70,  width:230, id:'codigo', maxlen: 5   }),
            X.form.number ({x:145, y:100, width:35,  id:'duracion', maxlen: 2 }),
            X.form.button ({x:240, y:100, width:80,  id:'crear', text:'Crear' }),
        ]
    });

    X.event.button('crear', function(btn, event){
        if (X.isempty('nombre'))
            X.msg.failure('Complete el campo "Nombre".', h_empty_nombre    );
        else if (X.isempty('codigo'))
            X.msg.failure('Complete el campo "Código".', h_empty_codigo    );
        else if (X.isempty('departamento'))
            X.msg.failure('Complete el campo "Departamento".', h_empty_dpto);
        else if (X.isempty('duracion'))
            X.msg.failure('Complete el campo "Duración".', h_empty_duracion);
        else
            X.ajax({
                url: '/carrera/ajax-crear',
                params: {
                    nombre       : X.value('nombre'),
                    codigo       : X.value('codigo'),
                    departamento : X.value('departamento'),
                    duracion     : X.value('duracion')
                },
                afterSuccess: h_crear_success,
                afterFailure: h_crear_failure
            });
    });

    X.win.panel({
        id      : 'creaWindow',
        title   : 'Crear carrera',
        modal   : false,
        items   : X.get('createCarreerForm')
    });

    X.get('creaWindow').show();

});

